<?php

namespace App\Http\Controllers\Test;


use App\Http\Controllers\Controller;
use App\Models\Goods;
use App\Models\GoodsDesc;
use Faker\Generator as Faker;

class GoodsController extends Controller
{


    // 添加商品


    //  添加商品
    // http://www.enshop.com/test/goods/add
    public function add()
    {
        $cates  = [2, 3, 4, 5, 6, 7];  // 栏目id
        $images = ['/uploads/20.jpg',];

        $faker = \Faker\Factory::create(); // 创建一个 Faker 实例
        //$faker = Faker::create(); // 创建一个 Faker 实例


        // 生成图片
        /*//生成图片并保存到本地 '/tmp/13b73edae8443990be1aa8f1a483bc27.jpg'
         $image = $faker->image('./uploads', 320, 320);
        $image = $faker->image('./tmp', 320, 320);
        //设置类别并生成图片保存到本地  'tmp/13b73edae8443990be1aa8f1a483bc27.jpg'
        $image = $faker->image('./tmp', 320, 320, 'cats');
        //设置类别并生成图片保存到本地，只返回文件名 '13b73edae8443990be1aa8f1a483bc27.jpg'
        $image = $faker->image('./tmp', 320, 320, 'cats', false);
        // 生成没有随机化的图像
        $image = $faker->image('./tmp', 320, 320, 'cats', true, false);
        //生成图片并加上水印字体  'tmp/13b73edae8443990be1aa8f1a483bc27.jpg'
        $image = $faker->image('./tmp', 320, 320, 'cats', true, true, 'Faker');*/

        // $faker->word . ' ' . $faker->word;
        /*$word       = $faker->word;//返回一个单词
        $realText = $faker->realText();//一段叙事文本
        $words      = $faker->words(3, false);//返回3个单词，false表示返回一个数组；true表示返回一个字符串，单词之间用空格分开
        $sentence   = $faker->sentence(5, true);//返回一个句子，false表示只能含有5个单词，true表示可以在5个单词左右
        $sentences  = $faker->sentences(3, false);//返回3条句子，false表示返回一个数组，true表示将三条句子拼成一条返回
        $paragraph  = $faker->paragraph(3, true);//返回一个段落，由3条句子组成。false表示只能有3条句子，true表示可以在3条句子左右
        $paragraphs = $faker->paragraphs(4, false);//返回4个段落。false表示返回一个数组，true表示将段落拼接在一起，并且用换行符分割
        $text       = $faker->text(200);//返回一段文本，最多只能含有200个字符*/

        $cCate  = count($cates);
        $cImage = 20;
        $number = 100;
        for($i = 0; $i < $number; $i++){
            // 随机栏目
            $cateId = $cates[mt_rand(0, $cCate - 1)];
            // 随机图片数量
            $imageNum = mt_rand(1, $cImage - 1);
            // 随机图片
            $pics = [];
            for($ii = 0; $ii < $imageNum; $ii++){
                $pics[] = 'http://cdn.old.com/uploads/'.mt_rand(1, 20).'.jpg';
            }


            // 封面图片
            // 随机标题 title
            // 随机内容 description
            // 随机内容 content
            $title   = $faker->word(3, false);
            $desc    = $faker->sentence(5, true);
            $content = $faker->paragraphs(4, true);
            $goods   = [
                'cate_id' => $cateId,
                'pic'     => $pics[0],
                'images'  => json_encode($pics),
                'name'    => $title,
                'status'  => 1,
                'price'   => mt_rand(1, 2000) / 100,
                //'description' => $desc,
            ];

            // 保存到商品中
            $goodsDb = new Goods();

            // pic images 两个字段添加失败
            /*$goodsDb->fill($goods);
            $goodsDb->save();
             $gId = $goodsDb->id;*/

            // pic images 两个字段添加成功
            $gId = $goodsDb->insertGetId($goods);


            // 保存到商品详情中
            $descDb = new GoodsDesc();
            $desc   = ['content' => nl2br($content), 'goods_id' => $gId];
            $descDb->fill($desc);
            $descDb->save();
        }

        return '添加成功！';
    }


}


